package com.yangquan.visibility;

import java.util.concurrent.atomic.AtomicBoolean;

// 原子类通过 CAS 操作保证可见性与原子性 AtomicBoolean
// 既解决可见性，又避免复合操作的非原子性问题（如 i++）
public class AtomicFix {
    private static AtomicBoolean flag = new AtomicBoolean(false);

    public static void main(String[] args) {
        new Thread(() -> {
            while (!flag.get()) {} // 通过原子操作读取
            System.out.println("线程 1 退出循环");
        }).start();

        new Thread(() -> {
            try { Thread.sleep(1000); } 
            catch (InterruptedException e) {}
            flag.set(true); // 原子操作修改
            System.out.println("线程 2 修改 flag 为 true");
        }).start();
    }
}